package com.example.swordkotlin

object Test18 {

    @JvmStatic
    fun main(args: Array<String>) {
        val pre = intArrayOf(1, 2, 4, 7, 3, 5, 6, 8)
        val vin = intArrayOf(4, 7, 2, 1, 5, 3, 8, 6)

        for (i in 0..3) {
            println(i)
        }

        for (i in 0 until 3) {
            println("---$i")
        }
    }

    class ListNode(var `val`: Int, var next: ListNode? = null)


    /**
     * 删除链表的节点
     * 给定单向链表的头指针和一个要删除的节点的值，定义一个函数删除该节点。返回删除后的链表的头节点。
     * <p>
     * 1.此题对比原题有改动
     * 2.题目保证链表中节点的值互不相同
     * 3.该题只会输出返回的链表和结果做对比，所以若使用 C 或 C++ 语言，你不需要 free 或 delete 被删除的节点
     */

    fun deleteNode(head: ListNode?,`val`: Int): ListNode? {
        // write code here
        var cur = head
        if (cur?.`val`==`val`){
            return head?.next
        }
        while (cur?.next!=null&& cur.next!!.`val`!=`val`){
            cur = cur?.next?.next
        }
        cur?.next = cur?.next?.next
        return head
    }
}